Telegram Group & Telegram Channel
😎 Каждый бэкенд-инженер должен знать, как обрабатывать платежи

🍕 Проектируем ли мы сервис доставки еды или заказ такси, или любую другую платную услугу - везде можно углубиться в логику обработки платежа.
Его happy path, сбои.

‼️ В недавно вышедшей habr статье подробно расписаны состояния платежа и алгоритмы переходов.

Типовые статусы платежа
Happy path: Инициирован, Обрабатывается, Успешно завершен
Сбойные: Не выполнен, Ожидает повторной попытки, Возвращен, Отменен

🗓 Статусы предлагается менять в таблице с режимом записи append-only. Так чтобы видели всю историю изменений.

2️⃣ Проблемы с обработкой платежа делим на 2 типа:
1) Временные - когда можно сделать retry. К примеру, сетевая ошибка.
2) Существенные - не делаем retry. К примеру, недостаточно средств.
Наш главный сервис должен иметь логику по распознаванию таких проблем.

Прикручиваем соответственно две очереди:
1) Retriable
2) Dead Letter Queue

🗝 Exactly-once Delivery
Если делаем повторную отправку из-за сетевой ошибки( ), есть риск двойного списания🥺
К примеру, в ту сторону запрос с платежом прошёл. Обратно ответ не вернулся. А платёж успел осуществиться🤦
=> Поэтому приправляем нашу систему ключом идемпотентности реализуя тем самым семантику доставки exactly-once.

🔥 - Хорошая выжимка. Ожидаю больше подобных рецензий
Please open Telegram to view this post
VIEW IN TELEGRAM



tg-me.com/system_design_world/252
Create:
Last Update:

😎 Каждый бэкенд-инженер должен знать, как обрабатывать платежи

🍕 Проектируем ли мы сервис доставки еды или заказ такси, или любую другую платную услугу - везде можно углубиться в логику обработки платежа.
Его happy path, сбои.

‼️ В недавно вышедшей habr статье подробно расписаны состояния платежа и алгоритмы переходов.

Типовые статусы платежа
Happy path: Инициирован, Обрабатывается, Успешно завершен
Сбойные: Не выполнен, Ожидает повторной попытки, Возвращен, Отменен

🗓 Статусы предлагается менять в таблице с режимом записи append-only. Так чтобы видели всю историю изменений.

2️⃣ Проблемы с обработкой платежа делим на 2 типа:
1) Временные - когда можно сделать retry. К примеру, сетевая ошибка.
2) Существенные - не делаем retry. К примеру, недостаточно средств.
Наш главный сервис должен иметь логику по распознаванию таких проблем.

Прикручиваем соответственно две очереди:
1) Retriable
2) Dead Letter Queue

🗝 Exactly-once Delivery
Если делаем повторную отправку из-за сетевой ошибки( ), есть риск двойного списания🥺
К примеру, в ту сторону запрос с платежом прошёл. Обратно ответ не вернулся. А платёж успел осуществиться🤦
=> Поэтому приправляем нашу систему ключом идемпотентности реализуя тем самым семантику доставки exactly-once.

🔥 - Хорошая выжимка. Ожидаю больше подобных рецензий

BY System Design World




Share with your friend now:
tg-me.com/system_design_world/252

View MORE
Open in Telegram


System Design World Telegram | DID YOU KNOW?

Date: |

A project of our size needs at least a few hundred million dollars per year to keep going,” Mr. Durov wrote in his public channel on Telegram late last year. “While doing that, we will remain independent and stay true to our values, redefining how a tech company should operate.

Pinterest (PINS) Stock Sinks As Market Gains

Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%. Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time. Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.

System Design World from jp


Telegram System Design World
FROM USA